package com.imut.lagain.service;
import org.slf4j.LoggerFactory;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.imut.lagain.entity.HumorMessage;

import java.util.List;

/**
 * 幽默文案服务接口
 */
public interface IHumorMessageService extends IService<HumorMessage> {
    
    /**
     * 根据心情类型和小偷类型查询幽默文案
     * @param moodType 心情类型
     * @param thiefType 小偷类型
     * @return 幽默文案列表
     */
    List<HumorMessage> findByMoodTypeAndThiefType(String moodType, String thiefType);
    
    /**
     * 根据心情类型查询幽默文案
     * @param moodType 心情类型
     * @param page 分页参数
     * @return 幽默文案分页列表
     */
    IPage<HumorMessage> findByMoodType(String moodType, Page<HumorMessage> page);
    
    /**
     * 根据小偷类型查询幽默文案
     * @param thiefType 小偷类型
     * @param page 分页参数
     * @return 幽默文案分页列表
     */
    IPage<HumorMessage> findByThiefType(String thiefType, Page<HumorMessage> page);
    
    /**
     * 查询所有未删除的幽默文案
     * @return 幽默文案列表
     */
    List<HumorMessage> findAllActive();
    
    /**
     * 根据文案内容模糊查询幽默文案
     * @param message 文案内容关键字
     * @param page 分页参数
     * @return 幽默文案分页列表
     */
    IPage<HumorMessage> findByMessageLike(String message, Page<HumorMessage> page);
    
    /**
     * 获取随机幽默文案
     * @param moodType 心情类型
     * @param thiefType 小偷类型
     * @return 随机幽默文案
     */
    HumorMessage getRandomHumorMessage(String moodType, String thiefType);
    
    /**
     * 获取幽默文案列表
     * @param page 分页参数
     * @param moodType 心情类型
     * @param thiefType 小偷类型
     * @return 幽默文案分页列表
     */
    IPage<HumorMessage> getHumorMessageList(Page<HumorMessage> page, String moodType, String thiefType);
}
